package com.cq.hd.order.api.vo;



import com.cq.hd.common.serialize.Decimal2Serializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class AppOrderEnrollActiveDetail implements Serializable {

    @ApiModelProperty(value = "活动id")
    private Long id;

    @ApiModelProperty(value = "商家id")
    private Long businessId;

    @ApiModelProperty(value = "活动编号")
    private String activeNo;

    @ApiModelProperty(value = "活动类型(1-团购活动，2-报名活动，3-外部活动)")
    private Integer activeType;

    @ApiModelProperty(value = "活动标题")
    private String activeTitle;

    @ApiModelProperty(value = "活动图片")
    private String activeImg;

    @ApiModelProperty(value = "活动内容")
    private String content;


    @ApiModelProperty(value = "活动价格，如果报名活动设置了阶梯价格，传0")
    @JsonSerialize(using = Decimal2Serializer.class)
    private BigDecimal activePrice;


    @ApiModelProperty(value = "划线价格")
    @JsonSerialize(using = Decimal2Serializer.class)
    private BigDecimal originPrice;

    @ApiModelProperty(value = "活动总库存")
    private Integer totalStock;

    @ApiModelProperty(value = "活动剩余库存")
    private Integer remainStock;

    @ApiModelProperty(value = "活动开始时间")
    private LocalDateTime startTime;

    @ApiModelProperty(value = "活动结束时间")
    private LocalDateTime endTime;

    @ApiModelProperty(value = "活动有效开始时间")
    private LocalDateTime validStartTime;

    @ApiModelProperty(value = "活动有效结束时间")
    private LocalDateTime validEndTime;

    @ApiModelProperty(value = "限购数量")
    private Integer limitBuyNum;

    @ApiModelProperty(value = "省份id")
    private Integer provinceId;

    @ApiModelProperty(value = "省份名称")
    private String provinceName;

    @ApiModelProperty(value = "市id")
    private Integer cityId;

    @ApiModelProperty(value = "市名称")
    private String cityName;

    @ApiModelProperty(value = "区县id")
    private Integer countyId;

    @ApiModelProperty(value = "区县名称")
    private String countyName;

    @ApiModelProperty(value = "活动详细地址")
    private String address;

    @ApiModelProperty(value = "活动状态（1-未发布，2-未开始，3-进行中，4-已结束）")
    private Integer activeState;

    @ApiModelProperty(value = "是否是阶梯价格(1-否，2-是)")
    private Integer stepPriceState = 1;

    // 阶梯价格列表
    @ApiModelProperty(value = "阶梯价格列表")
    private List<ActiveStepPriceSonDto> activeStepPrices;

    @ApiModelProperty(value = "活动限制的报名人数")
    private Integer enrollNum;

    @ApiModelProperty(value = "报名次数限制(同个用户最多可报名几次)")
    private Integer limitEnrollNum;


    @ApiModelProperty(value = "订单id")
    private Long orderId;

    @ApiModelProperty(value = "还差x人即可开启活动/再邀x人，可返33.5元/已满x人，可返33.5元/未集齐人数，已自动退款/小伙伴们在等你呢，快来呀~等文字")
    private String title;

    @ApiModelProperty(value = "已有y人参团")
    private String subTitle;

    @ApiModelProperty(value = "按钮状态:0-没有按钮,1-邀请好友,2-查看订单,3-去支付")
    private Integer buttonState = 0;

    @ApiModelProperty(value = "报名用户头像")
    private List<String> avatars;

    @ApiModelProperty(value = "还差x人/再邀x人/已满x人,如果为0不显示")
    private Integer inviteNum;


    @ApiModelProperty(value = "再邀x人,可返y元/已满x人,可返y元,如果为0不显示")
    @JsonSerialize(using = Decimal2Serializer.class)
    private BigDecimal returnAmt;

    @ApiModelProperty(value = "已报名人数")
    private Integer enrolledNum;

}
